/**伤害比较器相关Start
 * ***************************************************************************
 */

//加载信息
function initHint() {
	//线
	//<div class="dropdown-divider"></div>
	for (var field in hint) {
		var obj = hint[field];
		if (obj.line) {
			$("#add-field").append("<div class='dropdown-divider'></div>");
			continue;
		}
		var a = $("<a class='dropdown-item' href='javascript:;' ></a>");
		a.tooltip({
			title: obj.name,
			placement: "right"
		});
		a.attr("id", field);
		a.text(obj.abb)
		$("#add-field").append(a);
	}
}

initHint();

var trMod = $(".tr").first().clone();
$(".tr").remove();
trMod.show();

var jsonData = {};

//点击添加字段
$("#add-field a").click(function() {

	var id = $(this).attr("id");

	switch (id) {
		case "gj":
			if (jsonData.dl) {
				alert("已存在\"独立攻击力\"!");
				return;
			}
			if (!jsonData.lz) {
				alert("此字段必须添加\"力智\"!");
				return;
			}
			break;
		case "blz":
			if (!jsonData.lz) {
				alert("此字段必须添加\"力智\"!");
				return;
			}
			break;
		case "sb":
			if (!jsonData.sq) {
				alert("此字段必须添加\"属强\"!");
				return;
			}
			break;
		case "dl":
			if (jsonData.gj) {
				alert("已存在\"物理/魔法攻击力\"!");
				return;
			}
			break;
		default:
			break;
	}

	//隐藏提示信息
	$("#null-msg").hide();

	//添加到列表
	var tr = trMod.clone();
	tr.addClass(id);
	var name = $(this).text();
	tr.find(".name").text(name);
	tr.find(".jsq-input").data("id", id);
	tr.find(".jsq-input").change(edit);

	//添加提示
	tr.find(".name").tooltip({
		title: hint[id].name,
		placement: "top"
	});
	tr.find(".old-num").tooltip({
		title: hint[id].old,
		placement: "top"
	});
	tr.find(".add-num").tooltip({
		title: hint[id].add,
		placement: "top"
	});
	tr.find(".new-num").tooltip({
		title: hint[id].add,
		placement: "top"
	});

	tr.find(".remove").data("id", id);
	tr.find(".remove").click(removeTr);
	$("#table-tbody").append(tr);

	//为json添加字段
	jsonData[id] = {
		oldNum: 0,
		addNum: 0,
		newNum: 0,
		ratio: 0,
		addRatio: 0,
		newRatio: 0
	};

	//隐藏ADD按钮
	$(this).hide();

	showData();

})

//删除tr
function removeTr() {
	var id = $(this).data("id");
	$("#add-field").find("#" + id).show();
	$("#table-tbody ." + id).remove();

	//删除json中的数据,如果有的话
	if (jsonData[id]) {
		delete jsonData[id];
	}
	
	if (id == "lz" && jsonData.gj) {
		$("#add-field").find("#gj").show();
		$("#table-tbody .gj").remove();
		delete jsonData.gj;
	}

	//如果没有tr,显示提示信息
	if ($("#table-tbody .tr").length == 0) {
		$("#null-msg").show();
	}

	showData();
}

//编辑
function edit() {
	var tr = $(this).parent().parent();

	var oldNum = tr.find(".old-num").val();
	var addNum = tr.find(".add-num").val();
	var newNum = tr.find(".new-num").val();

	var id = $(this).data("id");

	if (oldNum == "" | oldNum == undefined) {
		oldNum = "0";
	}

	if (addNum == "" | addNum == undefined) {
		addNum = "0";
	}

	if (newNum == "" | newNum == undefined) {
		newNum = "0";
	}

	oldNum = parseInt(oldNum);
	jsonData[id].oldNum = oldNum;

	addNum = parseInt(addNum);
	jsonData[id].addNum = addNum;

	newNum = parseInt(newNum);
	jsonData[id].newNum = newNum;

	showData();
}

//显示数据
function showData() {
	//通过Id调用指定的方法
	for (var field in jsonData) {
		var ratio;

		var addRatio;
		var newRatio;

		addRatio = window[field](jsonData[field].oldNum, jsonData[field].addNum, "addNum");
		newRatio = window[field](jsonData[field].oldNum, jsonData[field].newNum, "newNum");
		if(!addRatio && addRatio != 0){
				addRatio = 0;
		}
		if(!newRatio && newRatio != 0){
			newRatio = 0;
		}
		ratio = addRatio - newRatio;

		if (jsonData[field].ratio != ratio) {
			//保存到json
			jsonData[field].ratio = ratio;
			jsonData[field].addRatio = addRatio;
			jsonData[field].newRatio = newRatio;

			//显示数据
			$("#table-tbody").find("." + field).find(".up-num").text(qxs(ratio));
		}

	}

	//更新总提升率
	allUp();
}

//读取数据,显示总提升率
function allUp() {
	var sumadd = 1;
	var sumnew = 1;
	for (var field in jsonData) {
		sumadd *= (1 + jsonData[field].addRatio);
		sumnew *= (1 + jsonData[field].newRatio);
	}
	$("#all-up").text(qxs(sumadd - sumnew));
}

//转换百分率,去小数点后两位,四舍五入
function qxs(num) {
	num *= 100;
	return num.toFixed(2);
}

/**伤害比较器End
 * ***************************************************************************
 */
